package com.tm.result;



import com.tm.enums.ResultEnum;

public class Result<T> {
    private Integer code;
    private String msg;
    private T data;

    public Result() {


    }

    public Result(Integer code, String msg, T data) {
        this.code = code;
        this.msg = msg;
        this.data = data;
    }

    public Result(ResultEnum resultEnum, T data) {
        this.code = resultEnum.getCode();
        this.msg = resultEnum.getMsg();
        this.data = data;
    }

    public Result(Integer code , String msg) {
        this.code = code;
        this.msg = msg;
    }

    public Result(ResultEnum resultEnum) {
        this.code = resultEnum.getCode();
        this.msg = resultEnum.getMsg();

    }


     public  static  Result SUCCESS(){

         return SUCCESS(null);
     }
    public  static  Result SUCCESS(Object data){

        return new Result(ResultEnum.SUCCESS,data);
    }

    public  static  Result LOGON_SUCCESS(String data){

        return new Result(ResultEnum.SUCCESS_LOGON,data);
    }
    public  static  Result ZDY(ResultEnum resultEnum){

        return new Result(resultEnum);
    }

    public  static  Result ZDYSMS(ResultEnum resultEnum){

        return new Result(resultEnum,"三分钟过期");
    }

    public  static  Result ERROR(){

        return SUCCESS(ResultEnum.ERROR);
    }

    public  static  Result ERROR(Integer code,String msg){

        return new Result(code , msg);
    }

    public static Result ERROR(ResultEnum resultEnum){
        return new Result(resultEnum);
    }


    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public T getData() {
        return data;
    }

    public void setData(T data) {
        this.data = data;
    }
}
